arm/mm: Introduce modify_xen_mappings
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tue, 9 Aug 2016 03:14:33 +0000 (23:14 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 16 Sep 2016 15:36:35 +0000 (11:36 -0400)
commit6559a686ae77bca2539d826120c9f3bd0d75cdf8
tree55b90a002aa0465dca40f3790c346e069fb69bc9
parent3eb51dda7106cbee5ff52a976c1ed842744e09a4
arm/mm: Introduce modify_xen_mappings

Which is only used by Livepatch code. The purpose behind
this call is to modify the page table entries flags.

Specifically the .ro and .nx flags. The current mechanism
puts cache attributes in the flags and the .ro and .nx are
locked down and assumed to be .ro=0, nx=1.

Livepatch needs .nx=0 and also .ro to be set to 1.

We introduce a new 'flags' where various bits determine
whether .ro and .nx bits are set or cleared. We can't use
an enum as the function prototype would diverge from x86.

Reviewed-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
xen/arch/arm/mm.c
xen/include/asm-arm/page.h